package com.crm.system.service.csd.customerManager;

import com.crm.common.exception.FastDFSException;
import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.csd.customerManager.CustomerServiceWorkLog;
import com.crm.model.qo.csd.customerManager.CustomerServiceWorkLogQO;
import com.crm.model.vo.csd.customerManager.CustomerServiceWorkLogVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author yincuimei
 * @Date 2021/8/20 15:22
 * (客服部)工作日志
 */
public interface CustomerServiceWorkLogService {

    /**
     * (客服部)工作日志列表--根据客户ID查询工作日志
     * @param customerId --客户ID
     * @author yincuimei
     * @return
     */
    DhPageInfo<CustomerServiceWorkLogVO> selectWorkLogList(String customerId, Integer pageIndex, Integer pageSize, String sortName, String sortOrder);

    /**
     * 工作日志--查看
     * @param workLogId --日志主键
     * @return
     */
    CustomerServiceWorkLogVO selectWorkLogById(String workLogId);

    /**
     * (客服部)批量新增工作日志
     * @param customerServiceWorkLogList --工作日志集合
     * @author yincuimei
     * @return
     */
    Boolean insertWorkLogBatch(List<CustomerServiceWorkLog> customerServiceWorkLogList);


    /**
     * (客服部)新增工作日志
     * @param customerServiceWorkLog --工作日志实体
     * @author yincuimei
     * @return
     */
    Boolean insertWorkLog(CustomerServiceWorkLog customerServiceWorkLog);

    /**
     * 日志实体
     * @author yincuimei
     * @return
     */
    CustomerServiceWorkLog getCustomerServiceWorkLog(String accountId,String customerId,short logType,String logContent,String logRemark);

    /**
    * @param accountId
    * @param customerId
    * @param logType
    * @param logContent
    * @param logRemark
    * @param contactPersonId
    * @author wangpeng
    * @date 2021/8/30
    * @return com.crm.model.entity.csd.customerManager.CustomerServiceWorkLog
    */
    CustomerServiceWorkLog getCustomerServiceWorkLog(String accountId,String customerId,short logType,String logContent,String logRemark,String contactPersonId);

    /**
     * 工作日志--修改备注、上传附件
     * @param workLogQO     --修改实体
     * @param multipartFile --日志附件
     * @return
     */
    Boolean updateWorkLogById(CustomerServiceWorkLogQO workLogQO, MultipartFile multipartFile) throws FastDFSException;
}
